var server = require('api');
var _alert = require('alert');
var _clear = require('clearForm');

function writeOut(val, i, arr) {

    // console.log(val);
    var order = i + 1;
    var tsName = val.tsName;
    var tsDES = val.tsDES;
    var tsCompletion = val.tsCompletion;
    var tsState = val.tsState;
    var link = val.tsAtt;
    var stateText = showState(tsState);

    if (link){
        var html = '<div class="detailModal"><p>名称：' + tsName + '</p><p>描述：' + tsDES + '</p>' +
            '<p>占比：' + tsCompletion + '</p><p>状态：' + stateText + '</p><p><a href=link>下载附件</a></p><hr></div>';
    }else{
        var html = '<div class="detailModal"><p>名称：' + tsName + '</p><p>描述：' + tsDES + '</p>' +
            '<p>占比：' + tsCompletion + '</p><p>状态：' + stateText + '</p><hr></div>';
    }


    $('#taskDetailModalBody').append(html);
}

function showState(state) {

    if (state == '0') {
        return '未上报';
    } else if (state == '1') {
        return '已上报未审批';
    } else if (state == '2') {
        return '已审批未通过';
    } else if (state == '3') {
        return '已审批已通过';
    }
}


//显示任务详细信息modal
window.showTaskDetail = {
    'click .taskInfo': function (e, value, row, index) {

        $('#taskDetailModal').modal('show');

        if (row) {
            $('#taskDetailName').text(row.taskName);
            $('#taskDetailContent').text(row.taskDES);
            $('#taskDetailFile').attr('href', row.taskAtt);
        }
    }
}


//显示任务阶段detail
window.detailEv = {
    'click .taskJd': function (e, value, row, index) {
        var taskId = row.taskId;
        $('#taskDetailModalBody').empty();

        $.ajax({
            url: server.jd,
            type: 'get',
            dataType: 'json',
            data: {
                userId: avalon.vmodels.root.user.id,
                userToken: avalon.vmodels.root.user.token,
                taskId: taskId
            }
        })
            .done(function (res) {
                var data = res.values;
                if (res.status == '9200') {
                    var data = res.values;

                    for (var i = 0; i < data.length; i++) {

                        var val = data[i];
                        var order = i + 1;
                        var tsName = val.tsName;
                        var tsDES = val.tsDES;
                        var tsCompletion = val.tsCompletion;
                        var tsState = val.tsState;
                        var link = val.tsAtt;
                        var stateText = showState(tsState);
                        var content = val.tsReportDES;

                        if (link) {

                            var html = '<div class="detailModal"><p>名称：' + tsName + '</p><p>描述：' + tsDES + '</p>' +
                                '<p>占比：' + tsCompletion + '</p><p>内容：' + content + '</p><p>状态：' + stateText + '</p><p><a target="_blank" href=' + link + '>下载附件</a></p><hr></div>';
                        } else {

                            var html = '<div class="detailModal"><p>名称：' + tsName + '</p><p>描述：' + tsDES + '</p>' +
                                '<p>占比：' + tsCompletion + '</p><p>内容：' + content + '</p><p>状态：' + stateText + '</p><hr></div>';
                        }

                        $('#taskDetailModalBody').append(html);
                    }

                    // data.forEach(writeOut);
                    $('#taskDetail').modal('show');
                } else {
                    _alert(res.description);
                    $('#taskDetail').modal('hide');
                }
            })
            .fail(function (res) {
                _alert('网络错误，请刷新尝试！');
                avalon.log(JSON.parse(res) + _.now())
            })

        $('#taskDetail').on('hide.bs.modal', function () {
            $('#taskDetailModalBody').empty();
        })
    }
};

//查询任务列表
function queryTaskList() {

    task.query.taskId = '';
    $('#taskTable').bootstrapTable('removeAll');

    $.ajax({
        url: server.queryTask,
        type: 'get',
        dataType: 'json',
        data: {
            userId: avalon.vmodels.root.user.id,
            userToken: avalon.vmodels.root.user.token
        }
    })
        .done(function (res) {
            var data = res.values;
            if (res.status == '9200') {
                $('#taskTable').bootstrapTable({});

                setTimeout(function () {
                    $('#taskTable').bootstrapTable('load', data);
                }, 100)

                $('#taskTable').on('check.bs.table', function (e, row) {
                    task.query.taskId = row.taskId;
                    task.query.taskState = row.taskState;
                })
            } else {
                $('#taskTable').bootstrapTable({});
            }
        })
        .fail(function (res) {
            _alert('网络错误，请刷新尝试！');
            avalon.log(JSON.parse(res) + _.now())
        })
}

var task = avalon.define({
    $id: 'task',
    contentOverflow: false,

    query: {
        startTime: '',
        endTime: '',
        displaySelect: '',//是否显示下拉选择队伍
        taskId: '',
        taskState: ''
    },

    approval: '',

    // showBtn: function () {
    //
    //    if(task.userType == 'totaldep'){
    //        _alert('sss');
    //        return true;
    //     }else {
    //        return false;
    //     }
    //
    // },

    //modal

    delTaskModal: function () {

        if (task.query.taskId) {
            $('#delTaskModal').modal('show');
        } else {
            _alert('请先选择任务');
        }
    },

    reviewTaskModal: function () {

        if (task.query.taskId) {
            $('#reviewTaskModal').modal('show');
        } else {
            _alert('请先选择任务');
        }

    },

    //删除任务
    delTask: function () {


        var data = {
            userId: avalon.vmodels.root.user.id,
            userToken: avalon.vmodels.root.user.token,
            taskId: task.query.taskId
        }

        $.ajax({
            url: server.delTask + 'userId=' + data.userId + '&userToken=' + data.userToken + '&taskId=' + data.taskId,
            type: 'delete',
            dataType: 'json'
        })
            .done(function (res) {
                if (res.status == '9200') {
                    _alert('任务删除成功');
                    $('#delTaskModal').modal('hide');
                    queryTaskList();
                } else {
                    _alert(res.description);
                }

            })
            .fail(function (res) {
                _alert('网络错误，任务删除失败，请重试');
                $('#delTaskModal').modal('hide');
            })


    },

    // 查询任务
    queryTask: function () {

        var data = {
            userId: avalon.vmodels.root.user.id,
            userToken: avalon.vmodels.root.user.token,
            startTime: task.query.startTime,
            endTime: task.query.endTime,
            branchId: ''
        }

        if ($('#queryOfficeType').val()) {
            data.branchId = $('#queryOfficeType').val()
        }

        $.ajax({
            url: server.queryTask,
            type: 'get',
            dataType: 'json',
            data: data
        })
            .done(function (res) {
                var data = res.values;
                if (res.status == '9200') {
                    $('#taskTable').bootstrapTable('load', data);
                    $('#taskTable').bootstrapTable('selectPage', 1);
                } else {
                    $('#taskTable').bootstrapTable('removeAll')
                    $('#taskTable').bootstrapTable({})
                }
            })
            .fail(function (res) {
                _alert('网络错误，请刷新尝试！');
                avalon.log(JSON.parse(res) + _.now())
            })
    },

    // 审核任务
    reviewTask: function () {

        _clear($('#reviewTaskModal'));
        var data = {
            userId: avalon.vmodels.root.user.id,
            userToken: avalon.vmodels.root.user.token,
            taskId: task.query.taskId,
            tsId: '',
            tsState: ''
        }

        if (task.approval == 'reject') {
            data.tsState = '2'
        } else if (task.approval == 'agree') {
            data.tsState = '3'
        }


        if (task.approval == ''){
            _alert('请选择审核结果');
        } else{
            task.approval = '';
            $.ajax({
                url: server.review,
                type: 'post',
                dataType: 'json',
                headers: {
                    'Content-Type': 'application/json'
                },
                data: JSON.stringify(data)
            })
                .done(function (res) {
                    var data = res.values;
                    if (res.status == '9200') {
                        queryTaskList();
                        $('#reviewTaskModal').modal('hide');
                    } else {
                        $('#reviewTaskModal').modal('hide');
                        _alert(res.description);
                    }
                })
                .fail(function (res) {
                    _alert('网络错误，请刷新尝试！');
                    avalon.log(JSON.parse(res) + _.now())
                })
        }

    },

    init: function () {
        // body...
        avalon.log('任务管理init' + _.now());

        setTimeout(function () {
            $(function () {

                if (avalon.vmodels.root.user.userType != 'totaldep') {

                    setTimeout(function () {
                        $('#aaa').css('display', 'none');
                        $('#bbb').css('display', 'none');
                    }, 1)

                }

                task.query.displaySelect = avalon.vmodels.root.user.userType;

                $(".datepicker").datepicker({
                    autoclose: true,
                    format: 'yyyy-mm-dd'
                });


                //查询任务任务列表
                queryTaskList();

                $('#reviewTaskModal').on('shown.bs.modal', function () {

                    if (task.query.taskState != '2') {
                        $('#reviewTaskModal').html('<p class="bg-warning">此任务无需审核</p>')
                    }
                })

            })
        }, 100)
    }

})

// task.$watch("approval",function () {
//
//     if (task.approval == 'reject'){
//         data.tsState = '2'
//     } else if (task.approval == 'agree'){
//         data.tsState = '3'
//     }
//
// })

module.exports = task;